package com.yklx.youke.admin.mapper;

import com.yklx.youke.entity.Role;
import org.apache.ibatis.annotations.*;
import java.util.List;

@org.apache.ibatis.annotations.Mapper
public interface RoleMapper {
    /**
     * 获取所有角色
     * @return 所有角色列表
     */
    @Select("SELECT * FROM roles ORDER BY created_at")
    List<Role> getAllRoles();

    /**
     * 根据ID获取角色
     * @param roleId 角色ID
     * @return 角色对象
     */
    @Select("SELECT * FROM roles WHERE role_id = #{roleId}")
    Role getRoleById(@Param("roleId") String roleId);

    /**
     * 插入新角色
     * @param role 角色对象
     * @return 影响的行数
     */
    @Insert("INSERT INTO roles (role_id, role_name, role_description, created_at, updated_at) " +
            "VALUES (#{roleId}, #{roleName}, #{roleDescription}, NOW(), NOW())")
    int insertRole(Role role);

    /**
     * 更新角色
     * @param role 角色对象
     * @return 影响的行数
     */
    @Update("UPDATE roles SET role_name=#{roleName}, role_description=#{roleDescription}, updated_at=NOW() " +
            "WHERE role_id=#{roleId}")
    int updateRole(Role role);

    /**
     * 删除角色
     * @param roleId 角色ID
     * @return 影响的行数
     */
    @Delete("DELETE FROM roles WHERE role_id = #{roleId}")
    int deleteRole(@Param("roleId") String roleId);
}